package com.example.yurpceasy.model;

import cn.hutool.core.util.StrUtil;
import lombok.Data;

/**
 * 注册信息
 */
@Data
public class ServiceMetaInfo {

    /**
     * 服务名称
     */
    private String serviceName;

    /**
     * 服务版本
     */
    private String serviceVersion = "1.0";

    /**
     * 服务域名
     */
    private String serviceHost;

    /**
     * 服务端口
     */
    private Integer servicePort;

    private String serviceGroup = "default";

    // 服务名称 + 版本号作为 服务的键值
    public String getServiceKey() {
        return String.format("%s:%s", serviceName, serviceVersion);
    }

    // 获取服务注册节点键名
    public String getServiceNodeKey() {
        return String.format("%s/%s:%s", getServiceKey(), serviceHost, servicePort);
    }

    /**
     * 获取完整的服务地址
     * @return
     */
    public String getServiceAddress(){
        // http 或者 https 统一变成 http请求
        if (StrUtil.contains(serviceHost,"http")){
            return String.format("http://%s:%s",serviceHost,servicePort);
        }
        // 没有的，使用hutool工具也会帮我们补全为http://
        return String.format("%s:%s",serviceHost,servicePort);
    }

}
